﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using BlackEagleClient;
using BlackEagleClient.DatingReference;

namespace BlackEagleClient.Account
{
    public partial class Register : System.Web.UI.Page
    {

       
        protected void Page_Load(object sender, EventArgs e)
        {
            RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];
            
        }

        protected void RegisterUser_CreatedUser(object sender, EventArgs e)
        {
            //Detta Guid är den nya användares ID
            Guid id = Guid.NewGuid();

            CreateUserWizard cuw = (CreateUserWizard)sender;

            //Det nya ID:et används i inloggningsdatabasen dessutom så att det finns en indirekt koppling mellan de två databasen i form av ett Guid 
            WebProfile profile = WebProfile.GetProfile(cuw.UserName);
            profile.ID = id.ToString();
            profile.Save();

            //Ett nytt PersonComposite skapas och fylls med informationen från formuläret
            //Valideringen sker i markup
            PersonComposite person = new PersonComposite();

            person.ID = id;
            person.Fnamn = ((TextBox)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("tbxFname")).Text;
            person.Enamn = ((TextBox)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("tbxLname")).Text;
            person.Sex = Int32.Parse(((DropDownList)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("Sex")).SelectedValue);
            person.Email = ((TextBox)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("Email")).Text;
            person.BirthDate = DateTime.Parse(((TextBox)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("tbxBirthdate")).Text);

            
            

            using (DatingServiceClient client = new DatingServiceClient())
            {
                //Kallar på AddProfile i WCF:en som lägger till användaren i användardatabasen
                client.AddProfile(person);
                //Lägger till standardrollen (Free) på den nyskapade användaren i logindatabasen
                Roles.AddUserToRole(RegisterUser.UserName, "Free");
            }
        

            FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */);

            //När registeringen är färdig skickas användaren till startsidan.
            string continueUrl = RegisterUser.ContinueDestinationPageUrl;
            if (String.IsNullOrEmpty(continueUrl))
            {
                continueUrl = "~/";
            }
            Response.Redirect(continueUrl);


           

        }
  

    }
}
